home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.plaf.basic;
-
- import com.sun.java.swing.AbstractButton;
- import com.sun.java.swing.ButtonModel;
- import com.sun.java.swing.JButton;
- import com.sun.java.swing.JComponent;
- import com.sun.java.swing.JRootPane;
- import com.sun.java.swing.KeyStroke;
- import com.sun.java.swing.SwingUtilities;
- import com.sun.java.swing.event.ChangeEvent;
- import com.sun.java.swing.event.ChangeListener;
- import java.awt.Component;
- import java.awt.Rectangle;
- import java.awt.event.FocusEvent;
- import java.awt.event.FocusListener;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseListener;
- import java.awt.event.MouseMotionListener;
- import java.io.Serializable;
- import java.util.EventObject;
-
- public class BasicButtonListener implements MouseListener, MouseMotionListener, FocusListener, ChangeListener, Serializable {
- private Rectangle tmpRect = new Rectangle();
-
- public BasicButtonListener(AbstractButton b) {
- }
-
- public void focusGained(FocusEvent e) {
- AbstractButton b = (AbstractButton)((EventObject)e).getSource();
- if (b instanceof JButton) {
- JRootPane root = ((JComponent)b).getRootPane();
- if (root != null) {
- root.setDefaultButton((JButton)b);
- }
- }
-
- ((Component)b).repaint();
- }
-
- public void focusLost(FocusEvent e) {
- AbstractButton b = (AbstractButton)((EventObject)e).getSource();
- ((Component)b).repaint();
- }
-
- public void mouseClicked(MouseEvent e) {
- }
-
- public void mouseDragged(MouseEvent e) {
- AbstractButton b = (AbstractButton)((EventObject)e).getSource();
- ButtonModel model = b.getModel();
- if (model.isPressed()) {
- this.tmpRect.width = ((JComponent)b).getWidth();
- this.tmpRect.height = ((JComponent)b).getHeight();
- if (this.tmpRect.contains(e.getPoint())) {
- model.setArmed(true);
- } else {
- model.setArmed(false);
- }
- }
-
- }
-
- public void mouseEntered(MouseEvent e) {
- AbstractButton b = (AbstractButton)((EventObject)e).getSource();
- if (b.isRolloverEnabled()) {
- b.getModel().setRollover(true);
- }
-
- }
-
- public void mouseExited(MouseEvent e) {
- AbstractButton b = (AbstractButton)((EventObject)e).getSource();
- if (b.isRolloverEnabled()) {
- b.getModel().setRollover(false);
- }
-
- }
-
- public void mouseMoved(MouseEvent e) {
- }
-
- public void mousePressed(MouseEvent e) {
- if (SwingUtilities.isLeftMouseButton(e)) {
- AbstractButton b = (AbstractButton)((EventObject)e).getSource();
- ButtonModel model = b.getModel();
- model.setArmed(true);
- model.setPressed(true);
- if (!((JComponent)b).hasFocus()) {
- ((JComponent)b).requestFocus();
- }
- }
-
- }
-
- public void mouseReleased(MouseEvent e) {
- AbstractButton b = (AbstractButton)((EventObject)e).getSource();
- ButtonModel model = b.getModel();
- model.setPressed(false);
- }
-
- public void setupKeyboard(AbstractButton b) {
- ButtonModel bm = b.getModel();
- ((JComponent)b).resetKeyboardActions();
- ((JComponent)b).registerKeyboardAction(new PressedAction(b), KeyStroke.getKeyStroke(32, 0, false), 0);
- ((JComponent)b).registerKeyboardAction(new ReleasedAction(b), KeyStroke.getKeyStroke(32, 0, true), 0);
- if (bm.getMnemonic() != 0) {
- ((JComponent)b).registerKeyboardAction(new PressedAction(b), KeyStroke.getKeyStroke(bm.getMnemonic(), 8, false), 2);
- ((JComponent)b).registerKeyboardAction(new ReleasedAction(b), KeyStroke.getKeyStroke(bm.getMnemonic(), 8, true), 2);
- ((JComponent)b).registerKeyboardAction(new ReleasedAction(b), KeyStroke.getKeyStroke(bm.getMnemonic(), 0, true), 2);
- }
-
- }
-
- public void stateChanged(ChangeEvent e) {
- AbstractButton b = (AbstractButton)((EventObject)e).getSource();
- ((Component)b).repaint();
- }
- }
-